#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;

//typedef void (*task_t)();

//void download()
//{
//    printf("this is a download task is rnning!\n");
//}
//void printLog()
//{
//    printf("this is a write log task is rnning!\n");
//}
//void show()
//{
//    printf("this is a show info task is rnning!\n");
//}
//
//void initTasks(task_t tasks[], int num)
//{
//    for(int i = 0; i < num; i++) tasks[i] = NULL;
//}
//
//int addTask(task_t tasks[], task_t t)
//{
//    int i = 0;
//    for(; i < 3; i++)
//    {
//        if(tasks[i] == NULL)
//        {
//            tasks[i] = t;
//            return 1;
//        }
//    }
//    return 0;
//}
//
//void executeTask(task_t tasks[], int num)
//{
//    for(int i = 0; i < num; i++)
//    {
//        if(tasks[i]) tasks[i]();
//    }
//}
//int main()
//{
//    task_t tasks[3];
//    initTasks(tasks, 3);
//    addTask(tasks, download);
//    addTask(tasks, printLog);
//    addTask(tasks, show);
//
//    executeTask(tasks,3);
//	return 0;
//}

class A
{
public:
	A()
	{
		cout << "A()" << endl;
	}
	~A()
	{
		cout << "~A()" << endl;
	}
	bool operator()(int a, int b)
	{
		return a > b;
	}

};

int main()
{
	//A a;
	//cout << sizeof(a) << endl;
	vector<int> v = { 1,3,5,7,9,2,4,6,8,10 };

	sort(v.begin(), v.end(), A());

	for (auto e : v)
	{
		cout << e << " ";
	}
	cout << endl;

	return 0;
}